1 package org.smartcomps.twister.engine.core.definition;
2
3 import junit.framework.TestCase;
4 import net.sf.hibernate.tool.hbm2ddl.SchemaExport;
5 import net.sf.hibernate.cfg.Configuration;
6 import org.smartcomps.twister.common.transaction.TransactionManager;
7 import org.smartcomps.twister.common.lifecycle.LifecycleManager;
8 import org.smartcomps.twister.engine.priv.core.definition.ActivityFactory;
9 import org.smartcomps.twister.engine.priv.core.definition.Switch;
10 import org.smartcomps.twister.engine.priv.core.definition.Invoke;
11 import org.smartcomps.twister.engine.priv.core.definition.ProcessFactory;
12 import org.smartcomps.twister.engine.priv.core.definition.Activity;
13 import org.smartcomps.twister.util.BeanTester;
14
15 /***
16 * Tests a simple switch with three invokes (as a switch by itself
17 * doesn't really make sense).
18 */
19 public class TestSwitch extends TestCase {
20
21 public static Switch testSwitch = null;
22
23 private TestProcess testProcess = new TestProcess();
24 private BeanTester beanTester = new BeanTester(new String[] {"Id", "Index"});
25
26 protected void setUp() throws Exception {
27 LifecycleManager.getLifecycleManager().createResources();
28 LifecycleManager.getLifecycleManager().startResources();
29
30 SchemaExport schemaExport = new SchemaExport(new Configuration().configure());
31 schemaExport.create(true, true);
32
33 TransactionManager.beginTransaction();
34 testProcess.testCreate();
35 }
36
37 protected void tearDown() throws Exception {
38 TransactionManager.commitTransaction();
39
40 LifecycleManager.getLifecycleManager().stopResources();
41 LifecycleManager.getLifecycleManager().destroyResources();
42 }
43
44 public void testSimpleCreate() throws Exception {
45 testSwitch = (Switch) ActivityFactory.createActivity(Switch.class, TestProcess.testProcess);
46 Invoke invoke1 = (Invoke) ActivityFactory.createActivity(Invoke.class, testSwitch);
47 beanTester.initializeProperties("invoke1", invoke1);
48 Invoke invoke2 = (Invoke) ActivityFactory.createActivity(Invoke.class, testSwitch);
49 beanTester.initializeProperties("invoke2", invoke2);
50
51 TransactionManager.commitTransaction();
52 TransactionManager.beginTransaction();
53
54 Switch resultSeq = (Switch) ProcessFactory.getByName(TestProcess.testProcess.getName()).getActivity();
55 assertNotNull("Switch process is null", resultSeq.getProcess());
56 Activity act1 = (Activity) resultSeq.getActivities().get(0);
57 assertTrue("First activity in the switch is not an Invoke", act1 instanceof Invoke);
58 assertTrue("First activity attributes have been changed", beanTester.testValues("invoke1", act1));
59 Activity act2 = (Activity) resultSeq.getActivities().get(1);
60 assertTrue("Second activity in the switch is not an Invoke", act2 instanceof Invoke);
61 assertTrue("Second activity attributes have been changed", beanTester.testValues("invoke2", act2));
62
63 }
64
65 public void testCreateNoOtherwise() throws Exception {
66 testSwitch = (Switch) ActivityFactory.createActivity(Switch.class, TestProcess.testProcess);
67 Invoke invoke1 = (Invoke) ActivityFactory.createActivity(Invoke.class, testSwitch);
68 invoke1.setOperation("operation1");
69 invoke1.setPartner("partner1");
70 invoke1.setPortType("portType1");
71 Invoke invoke2 = (Invoke) ActivityFactory.createActivity(Invoke.class, testSwitch);
72 invoke2.setOperation("operation2");
73 invoke2.setPartner("partner2");
74 invoke2.setPortType("portType2");
75
76 testSwitch.addCondition("1 > 2", invoke1);
77 testSwitch.addCondition("1 < 2", invoke2);
78
79 TransactionManager.commitTransaction();
80 TransactionManager.beginTransaction();
81
82 Switch resultSeq = (Switch) ProcessFactory.getByName(TestProcess.testProcess.getName()).getActivity();
83 assertNotNull("Switch process is null", resultSeq.getProcess());
84 }
85
86 public void testCreateWithOtherwise() throws Exception {
87 testSwitch = (Switch) ActivityFactory.createActivity(Switch.class, TestProcess.testProcess);
88 Invoke invoke1 = (Invoke) ActivityFactory.createActivity(Invoke.class, testSwitch);
89 invoke1.setOperation("operation1");
90 invoke1.setPartner("partner1");
91 invoke1.setPortType("portType1");
92 Invoke invoke2 = (Invoke) ActivityFactory.createActivity(Invoke.class, testSwitch);
93 invoke2.setOperation("operation2");
94 invoke2.setPartner("partner2");
95 invoke2.setPortType("portType2");
96 Invoke invoke3 = (Invoke) ActivityFactory.createActivity(Invoke.class, testSwitch);
97 invoke3.setOperation("operation3");
98 invoke3.setPartner("partner3");
99 invoke3.setPortType("portType3");
100
101 testSwitch.addCondition("1 > 2", invoke1);
102 testSwitch.addCondition("1 = 2", invoke2);
103 testSwitch.setOtherwise(invoke3);
104
105 TransactionManager.commitTransaction();
106 TransactionManager.beginTransaction();
107
108 Switch resultSeq = (Switch) ProcessFactory.getByName(TestProcess.testProcess.getName()).getActivity();
109 assertNotNull("Switch process is null", resultSeq.getProcess());
110
111 }
112 }
This page was automatically generated by Maven